const { OpenAI } = require('openai');

// 豆包AI配置
const DOUBAO_API_BASE = 'https://ark.cn-beijing.volces.com/api/v3';
// Doubao-pro-32k-241215
// const MODEL_NAME = 'ep-20250221142358-mmrt7';

// Doubao-pro-32k-241215
// const MODEL_NAME = 'ep-20250220100408-jrxl6';

// Doubao-1.5-pro-32k
const MODEL_NAME = 'ep-20250221143302-mpgwn';

// 创建OpenAI实例，配置豆包AI的API密钥和基础URL
const openai = new OpenAI({
  apiKey: process.env.ARK_API_KEY,
  baseURL: DOUBAO_API_BASE
});

/**
 * 调用豆包AI接口生成内容
 * @param {Object} params - 请求参数
 * @param {string} params.prompt - 提示词
 * @param {Object} [params.options] - 可选参数
 * @param {number} [params.options.temperature=0.7] - 温度参数，控制输出的随机性，范围0-1
 * @param {number} [params.options.max_tokens=2000] - 最大生成的token数量
 * @returns {Promise<Object>} 返回AI生成的结果
 */
async function generateContent(params) {
  try {
    // 验证必要参数
    if (!params.prompt) {
      throw new Error('提示词不能为空');
    }

    // 构建请求选项
    const requestOptions = {
      model: MODEL_NAME,
      messages: [
        {
          role: 'user',
          content: params.prompt
        }
      ],
      temperature: params.options?.temperature ?? 0.7,
      max_tokens: params.options?.max_tokens ?? 2000
    };

    // 调用豆包AI接口
    const response = await openai.chat.completions.create(requestOptions);

    // 处理并返回结果
    return {
      success: true,
      data: response.choices[0].message.content,
      usage: response.usage
    };

  } catch (error) {
    // 错误处理
    console.error('豆包AI接口调用错误：', error);
    return {
      success: false,
      error: error.message || '服务调用失败',
      details: error.response?.data || error
    };
  }
}

module.exports = {
  generateContent
};